package com.pet.server.service;

import com.pet.server.domain.vo.GoodsOrderVO;

import java.util.List;

public interface IGoodsOrderService {
  /**
   * 获取所有商品订单信息 分页显示
   *
   * @return 商品订单集合
   */
  List<GoodsOrderVO> getAllGoodsOrders(int pageNo, int pageSize, int shopId);

  // 通过商品名查询商品订单

  /**
   * 通过商品名查询商品订单 分页显示
   *
   * @param pageNo 当前页码
   * @param pageSize 每页显示数据条数
   * @param goodsName 商品名称
   * @param shopId 门店id
   * @return 订单信息
   */
  List<GoodsOrderVO> getGoodsOrdersByGoodsName(
      int pageNo, int pageSize, String goodsName, int shopId);

  // 通过订单状态查询商品订单

  /**
   * 通过订单状态查询订单 分页显示
   *
   * @param pageNo 当前页码
   * @param pageSize 每页显示数据
   * @param shopId 门店id
   * @param status 订单状态
   * @return 订单信息
   */
  List<GoodsOrderVO> getGoodsOrdersByStatus(int pageNo, int pageSize, int shopId, String status);

  // 通过宠物主查询商品订单

  /**
   * 通过宠物主查询订单 分页显示
   *
   * @param pageNo 当前页码
   * @param pageSize 每页显示数据条数
   * @param shopId 门店id
   * @param petMasterName 宠物主姓名
   * @return 订单信息
   */
  List<GoodsOrderVO> getGoodsOrdersByPetMaster(
      int pageNo, int pageSize, int shopId, String petMasterName);

  /**
   * 通过id获取指定商品订单 分页显示
   *
   * @param goodsOrderId 商品订单id
   * @return 商品订单对象
   */
  GoodsOrderVO getGoodsOrderSelectiveById(int shopId, int goodsOrderId);

  /**
   * 修改商品订单
   *
   * @param goodsOrder 要修改的商品订单信息
   * @return 修改情况 true / false
   */
  boolean updateGoodsOrderSelective(GoodsOrderVO goodsOrder);
}
